ExtJS-এ Model এবং Field এর জন্য বিভিন্ন বৈশিষ্ট্য (যেমন validation এবং field mapping) প্রদান করা হয়, যা ডেটার গঠন এবং সঠিকতা নিশ্চিত করতে সাহায্য করে। Model Validation ডেটা ভ্যালিডেশন এবং Field Mapping ফিল্ডের মান ম্যাপ করতে ব্যবহৃত হয়।
Model Validation একটি প্রক্রিয়া যার মাধ্যমে ডেটার সঠিকতা যাচাই করা হয়। ExtJS মডেলগুলিতে আপনি বিভিন্ন ধরনের ভ্যালিডেশন যুক্ত করতে পারেন যেমন: length, presence, email, format, inclusion, exclusion, ইত্যাদি।
Presence Validation:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
validations: [
{ type: 'presence', field: 'name', message: 'Name is required' },
{ type: 'presence', field: 'email', message: 'Email is required' }
]
});
এখানে, name
এবং email
ফিল্ডের জন্য presence ভ্যালিডেশন দেওয়া হয়েছে, যা নিশ্চিত করে যে এগুলি খালি থাকবে না।
Length Validation:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
validations: [
{ type: 'length', field: 'name', min: 3, max: 50, message: 'Name must be between 3 and 50 characters' }
]
});
এখানে, name
ফিল্ডের জন্য দৈর্ঘ্য ৩ থেকে ৫০ ক্যারেক্টারের মধ্যে হতে হবে।
Email Validation:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
validations: [
{ type: 'email', field: 'email', message: 'Invalid email address' }
]
});
এখানে, email
ফিল্ডের জন্য email ভ্যালিডেশন করা হয়েছে, যা ইমেইল ঠিকানার ফর্ম্যাট চেক করবে।
Custom Validation:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],
validations: [
{
type: 'exclusion',
field: 'name',
list: ['Admin', 'Superuser'],
message: 'Name cannot be Admin or Superuser'
}
]
});
এখানে, name
ফিল্ডের জন্য exclusion ভ্যালিডেশন করা হয়েছে, যাতে Admin
বা Superuser
নাম ব্যবহার না করা যায়।
Field Mapping হল ডেটার একটি ফিল্ডকে অন্য একটি ফিল্ডের মানের সাথে সম্পর্কিত বা ম্যাপ করা। এটি ডেটার বিভিন্ন ফরম্যাট বা রেপ্রেজেন্টেশন পরিবর্তন করতে ব্যবহৃত হয়। Field Mapping আপনাকে ডেটা পাঠানোর সময় বা গ্রহণ করার সময় ফিল্ডের মান পরিবর্তন করতে সহায়ক।
Field Mapping with Mapping Property:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'user_id', mapping: 'id' },
{ name: 'full_name', mapping: 'name' },
{ name: 'user_email', mapping: 'email' }
]
});
এখানে, user_id
ফিল্ডটি id
ফিল্ডের মানের সাথে ম্যাপ করা হয়েছে, full_name
ফিল্ডটি name
ফিল্ডের মানের সাথে এবং user_email
ফিল্ডটি email
ফিল্ডের মানের সাথে ম্যাপ করা হয়েছে।
Field Mapping with Function:
উদাহরণ:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'user_id', mapping: function(data) { return data.id; } },
{ name: 'full_name', mapping: function(data) { return data.name.toUpperCase(); } },
{ name: 'user_email', mapping: 'email' }
]
});
এখানে, name
ফিল্ডের মানকে uppercase তে রূপান্তর করা হচ্ছে full_name
ফিল্ডে।
ধরা যাক, আমাদের একটি ব্যবহারকারী মডেল রয়েছে যার মধ্যে কিছু ভ্যালিডেশন এবং ফিল্ড ম্যাপিং করা হয়েছে:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'user_id', mapping: 'id' },
{ name: 'full_name', mapping: 'name' },
{ name: 'user_email', mapping: 'email' }
],
validations: [
{ type: 'presence', field: 'full_name', message: 'Full Name is required' },
{ type: 'email', field: 'user_email', message: 'Invalid email address' },
{ type: 'length', field: 'full_name', min: 3, max: 50, message: 'Full Name must be between 3 and 50 characters' }
]
});
এখানে:
user_id
ফিল্ডটি id
এর সাথে ম্যাপ করা হয়েছে।full_name
ফিল্ডটি name
এর সাথে ম্যাপ করা হয়েছে এবং সেখানে length এবং presence ভ্যালিডেশন রয়েছে।user_email
ফিল্ডটি email
এর সাথে ম্যাপ করা হয়েছে এবং email ভ্যালিডেশন রয়েছে।এই দুটি ফিচার ExtJS অ্যাপ্লিকেশন ডেভেলপমেন্টে ডেটার সঠিকতা এবং কার্যকারিতা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more